Realizability and Compositional Compiler Correctness for a Polymorphic Language
نویسندگان
چکیده
We construct operationally-based realizability relations between phrases in a language with both universal and existential types and programs for a variant SECD machine. The relations, defined using parametricity, biorthogonality and step-indexing, give extensional and compositional specifications of when low-level code and values realize typed source-level terms. We prove full functional correctness of a compiler in terms of these relations and show how they also justify both source-level transformations and the linking of compiled code with hand-optimized code fragments that exploit non-parametric and non-functional low-level operations whilst being extensionally well-behaved. The definitions and results have been fully formalized in Coq.
منابع مشابه
Compositional Compiler Verification for a Multi-Language World
Verified compilers are typically proved correct under severe restrictions on what the compiler’s output may be linked with, from no linking at all to linking only with code compiled from the same source language. Such assumptions contradict the reality of how we use these compilers since most software systems today are comprised of components written in different languages compiled by different...
متن کاملSource Language Intermediate Language Target Language Compiler
We present a paradigm for proving the correctness of compilers for languages with parallelism. The source language is given a denotational semantics as a compositional translation to a higher-order process calculus. The target language is also given a denotational semantics as a compositional translation to the same process calculus. We show the compiler is correct in that it preserves denotati...
متن کاملCompositional Compiler Correctness with Quantified Types
We define operational logical relations between terms of a polymorphically typed functional language and low-level programs for a variant SECD machine. The relations, defined using biorthogonality and step-indexing, give extensional and compositional specifications expressing when low-level code and machine values realize typed source-level terms. We prove the correctness of a compiler and of s...
متن کاملCompositional Compiler Verification via Parametric Simulation
Compiler verification is essential for the construction of fully verified software, but most prior work (such as CompCert) has focused on verifying whole-program compilers. To support separate compilation and to enable linking of results from different verified compilers, it is important to develop a compositional notion of compiler correctness that is modular (preserved under linking), transit...
متن کاملMachine-Checked Proofs for Realizability Checking Algorithms
Virtual integration techniques focus on building architectural models of systems that can be analyzed early in the design cycle to try to lower cost, reduce risk, and improve quality of complex embedded systems. Given appropriate architectural descriptions, assume/guarantee contracts, and compositional reasoning rules, these techniques can be used to prove important safety properties about the ...
متن کامل